/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ASAExpr;

import exception.DivisionByZeroException;
import exception.VariableNonDeclareeException;

/**
 *
 * @author FM & KB
 */
public class ASAExprEt extends ASAExprComparaison {

    public ASAExprEt(ASAExpr e1, ASAExpr e2) {
        super(e1, e2);
    }

    @Override
    public int evalue() throws VariableNonDeclareeException, DivisionByZeroException {
        if (partieGauche.evalue() == 0) {
            return 0;
        } else {
            if (partieDroite.evalue() == 0) {
                return 0;
            } else {
                return 1;
            }
        }
    }

    @Override
    public String getLabelExplorateur() {
        return "ET";
    }

    public ASAExpr simplifie() throws VariableNonDeclareeException, DivisionByZeroException {
        ASAExpr spartieGauche = partieGauche.simplifie();
        ASAExpr spartieDroite = partieDroite.simplifie();
        if (spartieGauche.getClass() != ASAExprRecupIdent.class) {
            if (spartieGauche.evalue() == 0) {
                return new ASAExprEntier(0);
            }
        }
        return new ASAExprMult(spartieGauche, spartieDroite);
    }
}
